Internet Technology as a Tool for Solving Engineering Problems
نویسندگان
چکیده
This tutorial covers all primary technologies that can be used for Web programming with applications to the Internet based data acquisition and system control. The presentation is divided into two parts. The first part discusses several programming languages as programming tools. It provides in depth discussion of the tasks that are best to implement with and on the advantages versus challenges associated with particular cases. The following tools are covered: HTML, JavaScript, Java Applets, Cookies, CGI, PERL, PHP, native languages (C/C++), and Web server configuration for security. Special emphasis is given to PERL and JAVA. Several programming examples for client, server and client-server applications are provided. The fragments of code are selected so that they provide good jumpstart to programming in particular languages for anybody with good programming skills in any programming language (preferably C++ or C). Advantages and disadvantages of different computer languages are discussed so a proper programming platform for different applications and task can be chosen. I. SYSTEM ARCHITECTURE CONSIDERATIONS During software development, it is important to justify which part of the software should run on the client machine and which part should run on the server. Sometimes even the very fundamental client-server architecture must be reconsidered in favor of a peer to peer decentralized structures. The decision about the architecture can be made either based on the process control strategy or based on the information storage. In case of the process control approach, the first approach is used when there each of the controlled objects can considered to be separate from possible other similar objects. The latter architecture is more beneficial in case of many controlled objects that cooperate with each other. When the information storage is considered then client server is favored over peer to peer communication in cases where information must be centralized, or is easier to manage when it is centralized. Even between these two models, there may be a hybrid. Consider an instance when one controls a process that is implemented by many objects that cooperate with each other. The controller either deals with each object separately using a client-server approach, or deals only with one object and then relies on the peer to peer architecture to carry out the request. The latter case adds additional complexity of dealing with a distributed server. II. COMPONENT PARTITIONING AND DATA FLOW Once a particular architecture is chosen, the component partitioning needs to be considered. Peer to peer architecture usually yields symmetry of all objects. The decisions are made for client-server based on several factors: • Amount of memory and CPU power available for server and clients. These restrictions may be imposed by technological or cost restrains. • Available bandwidth of the network connection. • Connection reliability and latency, especially in case of closing the control loop via network. • Ease of installation or no need to preinstall any specific component on a client machine. It is possible to develop two dedicated software components, one for server, and another one for a client and preinstall both. However, other strategies allow for more flexibility such as an automatic installation or update of the client side-software from the server. The latter approach requires storage of the client software components on the server object, possibly increasing the memory requirements and the initial network traffic when a new client must to be installed or updated. Regardless from the choice of just in time downloaded or preinstalled client the software designer must make choices regarding partitioning the tasks between the server and the client. In case of control, the best results are achieved when the control loop is closed locally on the server that is installed on the controlled. The Internet bandwidth is already adequate for many applications if their data flow is carefully designed. Furthermore, the bandwidth limitation will significantly improve with time. It is therefore important to develop methods, which take advantage of networks and then platform independent browsers. This would require solving several issues, such as: • Minimization of the amount of data which must be sent by a network • Task partitioning between the server and client • Selection of programming tools used for various tasks • Development of special user interfaces • Use of multiple servers and job sharing among them • Security, privacy and, in case of pay per use, account handling • Portability of software used on servers and clients IECON'01: The 27th Annual Conference of the IEEE Industrial Electronics Society 0-7803-7108-9/01/$10.00 (C)2001 IEEE 1622 • Distributing and installing network packages on several servers Fig. 1 illustrates an example of software component partitioning for a semiautonomous remote controlled robot. This particular application utilizes several clientserver partitions for multiple components. In addition, the network server is at the same time the client in the relation to the thin embedded server that controls the robot movements on the lowest software level. Figure 1. Example of client –server component partition. Choosing the right set of software tools to implement the components of the system is the next dilemma to be solved after the decisions about the data flow among the software components that are distributed in the network are made. This problem is addressed in the next section. III. MOST COMMONLY USED NETWORK PROGRAMMING TOOLS Although it is possible to develop network applications using solely C++, or other compiled languages, it is much easier to develop networked applications using dedicated software tool for each component. There are several well-developed networkprogramming tools available today [1]. These tools include HTML, JavaScript, VBScript, Java, ActiveX, Common Gateway Interface (CGI) and PERL or C++, Active Server pages (ASP) and PHP. It is essential to make a correct decision which programming language should be used for which part of the software package. Short characterizations of different network programming tools are given below. A. Hypertext Markup Language Hypertext Markup Language (HTML) was originally designed to describe a document layout regardless of the displaying device, its size, and other properties [2]. It can be incorporated into networked application front-end development either to create form-based dialog boxes or as a tool for defining the layout of an interface, or wraparound for Java applets or ActiveX components. In a way, HTML can be classified as a programming language because the document is displayed as a result of the execution of its code. In addition scripting language can be used to define simple interactions between a user and HTML components [3][4]. Several improvements to the standard language are available: Cascading style sheets (CSS) allow very precise description of the graphical view of the user interface; Compressed HTML allows bandwidth conservation but can only be used by Microsoft Internet Explorer. HTML is also used directly as it was originally intended – as a publishing tool for instruction and help files that are boundled with the software. This is the title for this Web Page This is the title This is the body of this Web page. go Another paragraph and a different font
منابع مشابه
FOA: ‘Following’ Optimization Algorithm for solving Power engineering optimization problems
These days randomized-based population optimization algorithms are in wide use in different branches of science such as bioinformatics, chemical physics andpower engineering. An important group of these algorithms is inspired by physical processes or entities’ behavior. A new approach of applying optimization-based social relationships among the members of a community is investigated in this pa...
متن کاملAn efficient approach for solving layout problems
This paper offers an approach that could be useful for diverse types of layout problems or even area allocation problems. By this approach there is no need to large number of discrete variables and only by few continues variables large-scale layout problems could be solved in polynomial time. This is resulted from dividing area into discrete and continuous dimensions. Also defining decision var...
متن کاملAn assessment of a semi analytical AG method for solving two-dimension nonlinear viscous flow
In this investigation, attempts have been made to solve two-dimension nonlinear viscous flow between slowly expanding or contracting walls with weak permeability by utilizing a semi analytical Akbari Ganji's Method (AGM). As regard to previous papers, solving of nonlinear equations is difficult and the results are not accurate. This new approach is emerged after comparing the achieved solutions...
متن کاملImproved teaching–learning-based and JAYA optimization algorithms for solving flexible flow shop scheduling problems
Flexible flow shop (or a hybrid flow shop) scheduling problem is an extension of classical flow shop scheduling problem. In a simple flow shop configuration, a job having ‘g’ operations is performed on ‘g’ operation centres (stages) with each stage having only one machine. If any stage contains more than one machine for providing alternate processing facility, then the problem...
متن کاملAn Adaptive Approach to Increase Accuracy of Forward Algorithm for Solving Evaluation Problems on Unstable Statistical Data Set
Nowadays, Hidden Markov models are extensively utilized for modeling stochastic processes. These models help researchers establish and implement the desired theoretical foundations using Markov algorithms such as Forward one. however, Using Stability hypothesis and the mean statistic for determining the values of Markov functions on unstable statistical data set has led to a significant reducti...
متن کاملPresentation and Solving Non-Linear Quad-Level Programming Problem Utilizing a Heuristic Approach Based on Taylor Theorem
The multi-level programming problems are attractive for many researchers because of their application in several areas such as economic, traffic, finance, management, transportation, information technology, engineering and so on. It has been proven that even the general bi-level programming problem is an NP-hard problem, so the multi-level problems are practical and complicated problems therefo...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2001